'''
内部函数的特点:
  1.可以访问外部函数的变量
  2.内部函数可以修改外部函数的可变类型的变量比如:list1
  3.内部函数修改全局的不可变变量时，需要在内部函数声明:global 变量名
    内部函数修改外部函数的不可变的变量时，需要在内部函数中声明:nonlocal 变量名
  4.locals() 查看本地变量有哪些，以字典的形式输出
    globals() 查看全局变量有哪些，以字典的形式输出(注意里面会有一些系统的键值对)
'''

def func():
    n = 100
    list1 = [2,3,5]
    def inner_func():
        nonlocal n
        for i in range(len(list1)):
            list1[i] = list1[i] + 2
        n += 100
    inner_func()
    print(list1)
    print(n)

func()